На днях компания VMware выпустила очередное обновление средства интеграции с гостевыми ОС виртуальных машин - VMware Tools 10.2.0. Напомним, что о прошлом релизе тулзов (10.1) мы писали вот тут. Кстати, у нас в последнее время было несколько интересных статей на тему этого пакета, например - раз, два и три.
Давайте посмотрим, что нового появилось в VMware Tools 10.2:
Офлайн бандл VMware Tools VIB-пакета: его можно установить на vSphere 5.5.x, 6.0.x and 6.5.x через vSphere Update Manager.
Поддерживаемые ОС:
windows.iso - поддерживает Windows Vista и более поздние.
linux.iso - поддерживает Red Hat Enterprise Linux (RHEL) 5 и более поздние, SUSE Linux Enterprise Server (SLES) 11 и новее, Ubuntu 10.04 и новее. Также поддерживаются дистрибутивы Linux - c glibc версии 2.5 и новее.
darwin.iso - поддерживает Mac OS X 10.11 и новее.
solaris.iso - для гостевых ОС Solaris.
Улучшенное управление жизненным циклом VMware Tools: теперь Microsoft System Center Configuration Manager (SCCM) можно использовать для распространения и обновления VMware Tools. Для получения детальной информации смотрите статью Deploying VMware Tools using SCCM.
Убрана поддержка FreeBSD. Это сделано для того, чтобы перенести ее в пакет open-vm-tools. Подробнее об этом читайте у нас тут.
Поддержка ASLR (Address space layout randomization).
Пофикшены ошибки. Для этого смотрите секцию Resolved Issues в Release notes.
Напомним, что для VMware Tools, начиная с версии 10.1, доступна подробная документация. Обновлять VMware Tools лучше через VMware Update Manager. Кстати, в онлайн-репозитории VMware версии 10.2 на момент написания заметки еще не было, но скоро он должен обновиться.
А вы знали, что резервные копии vCSA имеют срок годности? Вот и я тоже нет. Скажу вам больше, не все инженеры технической поддержки VMware GSS знают об этом! На самом деле то, что имеет срок годности — это пароль учётной записи root внутри OVF template на инсталляционном диске vCSA ISO! Я тоже был удивлён, но VMware называет это известной проблемой “known issue” в своей KB51124.
Известный своими скриптами блоггер Luc Dekens (LucD) опубликовал интересный сценарий PowerCLI для виртуальной инфраструктуры VMware vSphere, который позволяет вычистить права доступа на объекты, для которых уже существуют права на уровне родительских объектов.
Например, у вас есть такая картина:
Соответственно, нам нужно почистить пермиссии в папке Test1131 для пользователя Local\test, чтобы разрешения остались только на уровне родительского объекта Test1 (там, как мы видим, установлена опция применения разрешений вниз к дочерним объектам).
Собственно, сам скрипт:
<#
.SYNOPSIS
Find and remove redundant permissions on vSphere objects
.DESCRIPTION
The function will recursively scan the permissions on the
inventory objects passed via the Entity parameter.
Redundant permissions will be removed.
.NOTES
Author: Luc Dekens
.PARAMETER Entity
One or more vSphere inventory objects from where the scan
shall start
.EXAMPLE
PS> Optimize-Permission -Entity Folder1 -WhatIf
.EXAMPLE
PS> Optimize-Permission -Entity Folder?
.EXAMPLE
PS> Get-Folder -Name Folder* | Optimize-Permission
#>
[cmdletbinding(SupportsShouldProcess=$true)]
param(
[parameter(ValueFromPipeline)]
[PSObject[]]$Entity
)
Begin{
function Optimize-iVIPermission{
[cmdletbinding(SupportsShouldProcess=$true)]
param(
[parameter(ValueFromPipeline)]
[VMware.Vim.ManagedObjectReference]$Entity,
[VMware.Vim.Permission[]]$Permission = $null
)
Process{
$entityObj = Get-View -Id $Entity
$removePermission = @()
$newParentPermission = @()
if($Permission){
foreach($currentPermission in $entityObj.Permission){
foreach($parentPermission in $Permission){
if($parentPermission.Principal -eq $currentPermission.Principal -and
$parentPermission.RoleId -eq $currentPermission.RoleId){
$removePermission += $currentPermission
break
}
else{
$newParentPermission += $currentPermission
}
}
}
}
else{
$newParentPermission += $entityObj.Permission
}
if($removePermission){
if($pscmdlet.ShouldProcess("$($entityObj.Name)", "Cleaning up permissions")){
$removePermission | %{
$authMgr.RemoveEntityPermission($Entity,$_.Principal,$_.Group)
}
}
}
$Permission += $newParentPermission
if($entityObj.ChildEntity){
$entityObj.ChildEntity | Optimize-iVIPermission -Permission $Permission
}
}
}
}
Process{
foreach($entry in $Entity){
if($entry -is [System.String]){
$entry = Get-Inventory -Name $entry
}
Optimize-iVIPermission -Entity $entry.ExtensionData.MoRef
}
}
}
Скрипт работает так, что пробегается по дереву объектов, обнаруживает избыточные разрешения и удаляет их. У скрипта есть удобный параметр WhatIf, который выводит операции по очистке разрешений, которые как бы применяются к дочерним объектам, но на самом деле не применяет их:
Optimize-VIPermission -Entity Test1 -WhatIf
Результатом будет список объектов, где разрешения будут очищены, в данном случае, если посмотреть на пример выше, это будет папка Test1131:
Можно запустить скрипт и на 2 папки сразу:
Optimize-VIPermission -Entity Test1,Test2 -WhatIf
Результат будет таким (в папке Test22 также есть дублирующиеся разрешения):
Также можно использовать и конструкции с масками, например:
Теперь неплохо было бы, если бы кто-то написал GUI к этой штуке, а также добавил туда функции поиска и удаления произвольных разрешений в выбранных объектах.
Мы часто пишем о виртуальном модуле VMware vCenter Server Appliance (vCSA), который представляет собой готовую виртуальную машину для управления виртуальной инфраструктурой VMware vSphere (напомним, что это полноценная замена vCenter for Windows).
Сегодня мы покажем несколько интересных утилит командной строки vCSA, которые могут помочь вам в ежедневной эксплуатации этого управляющего сервиса.
1. Просмотр журнала Cron.
vCSA имел раньше проблемы со сжатием фалов журнала (логов), что приводило к тому, что дисковые разделы быстро заполнялись. Поэтому следующей командой можно посмотреть, когда в последний раз выполнялись запланированные задачи Cron:
ls -l /var/spool/cron/lastrun/
Для сравнения ниже приведен вывод этой команды совместно с выводом текущей даты:
vc:~ # date
Mon Dec 4 12:55:39 CET 2017
vc:~ # ls -l /var/spool/cron/lastrun/
total 0
-rw------- 1 root root 0 Dec 3 20:00 cron.daily
-rw------- 1 root root 0 Dec 4 12:15 cron.hourly
-rw------- 1 root root 0 Dec 1 20:00 cron.weekly
Как мы видим, крон успешно выполнялся для ежечасной задачи, ежедневной и еженедельной. Если же крон отвалился, то значит, скорее всего, устарел пароль root. Узнать это можно следующей командой:
grep "Authentication token is no longer valid; new one required" /var/log/messages.0.log | head
Если в выводе этой команды будет что-то вроде этого:
<timestamp> vcenter /usr/sbin/cron[<ID>]: Authentication token is no longer valid; new one required
значит пароль root устарел.
2. Смена устаревшего пароля root.
Если ваш пароль root устарел, и крон-таски vCSA не запускаются, то сменить его проще всего будет следующей командой (обратите внимание, что это НЕ слово change):
chage -l root
У вас запросят старый пароль и попросят задать новый:
Password change requested. Choose a new password.
Old Password:
New password:
После этого можно снова вывести срок действия пароля с помощью chage (тут видно, что он устареет через 99999 дней, то есть 274 года):
vc:~ # chage -l root
Minimum: 0
Maximum: 99999
Warning: 7
Inactive: -1
Last Change: Dec 27, 2016
Password Expires: Never
Password Inactive: Never
Account Expires: Never
3. Перезапуск служб vCSA.
Если вы хотите поправить странное поведение vCSA, которое может быть связано с некорректным поведением сервисов Linux внутри виртуального модуля, то можно перезапустить все службы:
Можно перезапустить, например, только vSphere Client:
service-control --stop vsphere-client
Список запущенных служб узнается так:
service-control --list
А вот так узнается статус того или иного сервиса:
service-control --status
4. Работа с LVM
Если вам надо увеличить виртуальные диски VMDK, а потом расширить тома LVM, то можете прочитать вот эту нашу статью. Чтобы не использовать API Explorer или PowerCLI, можно выполнить следующую команду для просмотра томов LVM:
Для идентификации дисковых устройств и их типов можно выполнить следующее:
lsscsi
Вывод будет примерно таков:
vc:~ # lsscsi
[0:0:0:0] disk VMware Virtual disk 1.0 /dev/sda
[0:0:1:0] disk VMware Virtual disk 1.0 /dev/sdb
[0:0:2:0] disk VMware Virtual disk 1.0 /dev/sdc
[0:0:3:0] disk VMware Virtual disk 1.0 /dev/sdd
[0:0:4:0] disk VMware Virtual disk 1.0 /dev/sde
[0:0:5:0] disk VMware Virtual disk 1.0 /dev/sdf
[0:0:6:0] disk VMware Virtual disk 1.0 /dev/sdg
[0:0:8:0] disk VMware Virtual disk 1.0 /dev/sdh
[0:0:10:0] disk VMware Virtual disk 1.0 /dev/sdi
[0:0:12:0] disk VMware Virtual disk 1.0 /dev/sdj
[0:0:14:0] disk VMware Virtual disk 1.0 /dev/sdk
[1:0:0:0] cd/dvd NECVMWar VMware IDE CDR00 1.00 /dev/sr0
Когда вы поймете, какой том нужно увеличить, выполните команду:
vpxd_servicecfg storage lvm autogrow
Надо помнить, что это сработает только для томов под управлением LVM (например, для disk 1 (sda) с разделом / - не сработает).
5. Поиск "загрязняющих" файлов.
Чтобы найти логи, которые могут засорить корневой раздел или раздел /storage/log, выполните одну из следующих команд:
du -a /var | sort -n -r | head -n 10
du -a /storage/log | sort -n -r | head -n 10
6. Изменение режима ротации логов (Log Rotation).
Сначала перейдем в папку с логами:
cd /etc/logrotate.d
Далее сделаем бэкап настроек:
cp dnsmasq ./dnsmasq.old
Затем откроем настройки:
vi dnsmasq
И поменяем слово "weekly" (еженедельно) на "daily" (ежедневно), например:
После этого можно удалить старый большой лог следующими командами:
cd /var/log
rm dnsmasq.log
7. Удаление файлов, которые не удалились.
Бывает так, что вы удалили большой файл, а дисковое пространство не высвободилось - и это видно командой df -h. Это происходит потому, что какой-то из процессов в памяти еще держит файл (при этом не обязательно использует его). Чтобы узнать, что это за процесс выполняем команду:
Некоторое время назад мы писали о том, как делать резервное копирование и восстановление базы данных сервера vCenter Server и виртуального модуля vCenter Server Appliance (vCSA). А сегодня мы поговорим о том, как сделать бэкап всей виртуальной машины vCSA с помощью средств PowerCLI.
Для начала напомним, что простейший способ бэкапить сервер vCSA - это сделать его резервную копию в графическом интерфейсе на вкладке Summary:
Но если вам нужно резервное копирование и восстановление с помощью сценариев PowerCLI, то для этого можно использовать функцию Backup-VCSAToFile, о которой Brian Graf рассказывал вот тут. Бэкап может проводиться в следующие хранилища назначения:
FTP
FTPS
HTTP
HTTPS
SCP
Для управления процессом резервного копирования можно использовать следующие функции:
Backup-VCSAToFile
Get-VCSABackupJobs
Get-VCSABackupStatus
Отрабатывает Backup-VCSAToFile следующим образом:
Некто Magnus Andersson на базе функции Backup-VCSAToFile создал вот такой скрипт попроще, который позволяет забэкапить сервер vCSA, задав в заголовке сценария несколько параметров:
Сервер бэкапов и директория
Имя пользователя и пароль на хранилище назначения
Тип бэкапа - Fullbackup (полный) или Seatbackup (только конфигурация vCSA)
Пароль к файлу бэкапа, который понадобится при восстановлении
Тип хранилища бэкапа
Комментарий
Пользоваться скриптом просто, вот он:
# Script to backup vCenter Server Appliance
# Author: Magnus Andersson - Sr Staff Solutions Engineer @Nutanix
# Version 1.0
# Created 2017-11-15
# Kudos to Brian Graf for creating the Backup-VCSAToFile function, used in this script, which can be found here Backup-VCSAToFile Function Created By Brian Graf - https://www.brianjgraf.com/2016/11/18/vsphere-6-5-automate-vcsa-backup/
#
#--------------------------------------------
# User Defined Variables Sections Starts Here
#
# Specify vCenter Server, vCenter Server User name and vCenter Server Password
$vcsa="vcsa01.vcdx56.local"
$vcsauser="vcsabkpuser@vsphere.local"
$vcsapasswd="TopSecret76!"
#
# Backup location
$bkpserver="10.10.100.199/vcsabackups/"
$bkpdir=get-date -uformat %Y-%m-%d
$bkpLocation=$bkpserver+$bkpdir
#
# Specify backup location user and password
$LocationUser="ftps-user"
$LocationPasswd="TopSecret67!"
#
# Specify backup type where Fullbackup is 1 and Seatbackup is 2
$BackupType=2
#
# Specify backup password - needed when performing restore
$bkpPassword="TopSecret68!"
#
# Specify backup localtion type where you must specify HTTP, HTTPS, SCP, FTP or FTPS
$LocationType="FTPS"
#
# Specify Backup Comment
$Comment="vCenter Server Appliance vcsa01.vcdx56.local backup"
#
# User Defined Variables Sections Ends Here
#--------------------------------------------
#
# Import Module VMware.VimAutomation.Cis.Core
Import-module VMware.VimAutomation.Cis.Core
#
# #--------------------------------------------
# Import Backup-VCSAToFile Function
Function Backup-VCSAToFile {
param (
[Parameter(ParameterSetName=’FullBackup’)]
[switch]$FullBackup,
[Parameter(ParameterSetName=’SeatBackup’)]
[switch]$SeatBackup,
[ValidateSet('FTPS', 'HTTP', 'SCP', 'HTTPS', 'FTP')]
$LocationType = "FTP",
$Location,
$LocationUser,
[VMware.VimAutomation.Cis.Core.Types.V1.Secret]$LocationPassword,
[VMware.VimAutomation.Cis.Core.Types.V1.Secret]$BackupPassword,
$Comment = "Backup job",
[switch]$ShowProgress
)
Begin {
if (!($global:DefaultCisServers)){
[System.Windows.Forms.MessageBox]::Show("It appears you have not created a connection to the CisServer. You will now be prompted to enter your vCenter credentials to continue" , "Connect to CisServer") | out-null
$Connection = Connect-CisServer $global:DefaultVIServer
} else {
$Connection = $global:DefaultCisServers
}
if ($FullBackup) {$parts = @("common","seat")}
if ($SeatBackup) {$parts = @("seat")}
}
Process{
$BackupAPI = Get-CisService com.vmware.appliance.recovery.backup.job
$CreateSpec = $BackupAPI.Help.create.piece.CreateExample()
$CreateSpec.parts = $parts
$CreateSpec.backup_password = $BackupPassword
$CreateSpec.location_type = $LocationType
$CreateSpec.location = $Location
$CreateSpec.location_user = $LocationUser
$CreateSpec.location_password = $LocationPassword
$CreateSpec.comment = $Comment
try {
$BackupJob = $BackupAPI.create($CreateSpec)
}
catch {
Write-Error $Error[0].exception.Message
}
If ($ShowProgress){
do {
$BackupAPI.get("$($BackupJob.ID)") | select id, progress, state
$progress = ($BackupAPI.get("$($BackupJob.ID)").progress)
Write-Progress -Activity "Backing up VCSA" -Status $BackupAPI.get("$($BackupJob.ID)").state -PercentComplete ($BackupAPI.get("$($BackupJob.ID)").progress) -CurrentOperation "$progress% Complete"
start-sleep -seconds 5
} until ($BackupAPI.get("$($BackupJob.ID)").progress -eq 100 -or $BackupAPI.get("$($BackupJob.ID)").state -ne "INPROGRESS")
$BackupAPI.get("$($BackupJob.ID)") | select id, progress, state
}
Else {
$BackupJob | select id, progress, state
}
}
End {}
}
#
#--------------------------------------------
# Create passwords
[VMware.VimAutomation.Cis.Core.Types.V1.Secret]$BackupPassword=$bkpPassword
[VMware.VimAutomation.Cis.Core.Types.V1.Secret]$LocationPassword=$LocationPasswd
#
# Connect to vCenter Server Appliance
Connect-CisServer -Server $vcsa -User $vcsauser -Password $vcsapasswd
#
# Start the backup
If ($BackupType -eq 1) {
Backup-VCSAToFile -BackupPassword $BackupPassword -LocationType $LocationType -Location $bkpLocation -LocationUser $LocationUser -LocationPassword $locationPassword -Comment $Comment -Fulbackup ShowProgress
}
Else {
Backup-VCSAToFile -BackupPassword $BackupPassword -LocationType $LocationType -Location $bkpLocation -LocationUser $LocationUser -LocationPassword $locationPassword -Comment $Comment -Seatbackup -ShowProgress
}
#
# Disconnect from vCenter Server Appliance
disconnect-CisServer $vcsa -confirm:$false
#
Надо сказать, что для скрипта нужно использовать пользователя, определенного на уровне SSO, так как если вы возьмете пользователя из AD, но с правами группы SSO Administrators - сценарий все равно работать не будет.
Скачать сценарий можно с репозитория на GitHub по этой ссылке.
Восстановить бэкап vCSA можно через vCenter Server Appliance Installer, выбрав опцию Restore:
Не так давно мы публиковали несколько интересных заметок о VMware Tools (раз, два, три, четыре), которые объясняют множество моментов, касающихся развертывания и эксплуатации данного пакета, предназначенного для улучшения работы гостевых ОС в среде виртуализации VMware vSphere.
В этой заметке мы постараемся обобщить эти вещи и добавить еще несколько фактов о VMware Tools, которые должен знать каждый администратор платформы ESXi:
Пакет VMware Tools для основных гостевых ОС входит в состав ESXi, но остальные поставляются отдельно от дистрибутивов платформы, и их можно скачать отсюда.
Чтобы узнать версии тулзов для ОС Windows и Linux, идущие вместе с дистрибутивом ESXi или патчем, загляните по этой ссылке https://packages.vmware.com/tools/versions (а мы писали об этом вот тут).
Стандартные VMware Tools, которые подходят для большинства ОС Windows и Linux можно обновлять через VMware Update Manager (VUM). Они накатываются в виде VIB-пакетов под названием "tools-light".
Традиционный подход к обновлению VMware Tools на множестве хостов VMware ESXi - это использовать общий репозиторий для VMware Update Manager, который накатывает обновления на серверы. Более современный подход - это использовать механизм Auto Deploy для развертывания stateless-хостов, которые забирают актуальные версии VMware Tools прямо из онлайн-репозитория VMware.
Версии VMware Tools состоят из двух релизов - VMware Tools 10.1.x и VMware Tools 10.0.x (это два разных ISO-образа). Версия 10.1.x - это развивающаяся ветка для современных гостевых систем (сейчас актуальна 10.1.15), а 10.0.12 - замороженная, которая предназначена для устаревших ОС, которые уже не обновляются. То есть апгрейд с версии тулзов 10.0.9 происходит на 10.1. Подробнее об этом рассказано в KB 2015161.
Почти все Linux-дистрибутивы идут с интегрированной версией Open VM Tools.
ISO-файлы VMware Tools теперь идут с файлами контрольных сумм, по которым можно проверить соответствие пакетов на аутентичность их происхождения за счет сверки хэшей. Поэтому надо быть внимательным при распаковке составляющих пакета, и ничего оттуда не убирать.
Все новые версии VMware Tools обратно совместимы со всеми версиями VMware ESXi, которые моложе как минимум на одно поколение. В этом можно убедиться, посмотрев VMware Interoperability Matrix:
Для Linux существует 3 вида VMware Tools (подробнее тут):
Operating System Specific Packages (OSP) - пакеты, которые размещены на сайте VMware (их можно скачать/обновить без аутентификации), содержащие в себе те же самые компоненты, которые находятся в ISO-образах, идущих с дистрибутивами VMware ESXi. Этот метод поставки VMware Tools для Linux уже несколько устарел и используется для старых гостевых ОС.
Open VM Tools (OVT) - это пакеты VMware Tools с открытым исходным кодом, которые встраиваются в большинство современных Linux-дистрибутивов. Соответственно, при установке такой гостевой ОС в виртуальной машине, пакет VMware Tools будет там уже установлен. Исходный код OVT доступен для всех желающих в репозитории на GitHub, но официально поддерживаются только те OVT, которые идут вместе с дистрибутивами Linux. Если вы скомпилировали их самостоятельно - учтите, поддержки от VMware не будет.
TAR Tools - они предоставляются VMware и устанавливаются через сценарий. Но VMware рекомендует использовать OVT.
VMware Tools дают множество возможностей для виртуальной машины и гостевой ОС, обо всех них написано вот тут.
Виртуальные машины с Windows используют паравиртуализованные драйвера хранилищ и сетевых адаптеров, что улучшает взаимодействие гостевой ОС и соответствующих ресурсов. Вот почему после обновления тулзов машина хочет перезагрузиться.
Для унификации развертывания VMware Tools нужно настроить централизованный репозиторий и сконфигурировать хосты ESXi таким образом, чтобы они брали последние версии тулзов оттуда. Об этом мы подробно писали вот тут, также вкратце информация есть об этом здесь и здесь.
Если у вас есть еще интересные моменты на эту тему - пишите в каменты!
Allan Kjaer написал интересный скрипт PowerCLI, который позволит определить, какие логические тома Windows находятся в виртуальных дисках VMDK машин на платформе vSphere. Как-то я сталкивался с такой проблемой, поэтому может быть она не такая уж и редкая.
Скрипт соединяется с управляющим сервером VMware vCenter, запрашивает учетные данные к гостевой ОС Windows, после чего строит отчет о том, на каких дисках VMDK какие разделы были обнаружены. Отчет включает в себя индекс диска Windows, букву диска и метку тома.
Вот так он выглядит:
"vmName vmHardDiskDatastore vmHardDiskVmdk vmHardDiskName windowsDiskIndex windowsDiskSerialNumber vmHardDiskUuid windowsDeviceID drives volumes
------ ------------------- -------------- -------------- ---------------- ----------------------- -------------- --------------- ------ -------
test-vm FC01 test-vm/test-vm.vmdk Hard disk 1 0 6000c29c481f32e9763fe6d2d8dc8f7b 6000C29c481f32e9763fe6d2d8dc8f7b \\.\PHYSICALDRIVE0 C:
test-vm FC01 test-vm/test-vm_1.vmdk Hard disk 2 1 6000c297d1a7352ed5ee1b870023f57d 6000C297d1a7352ed5ee1b870023f57d \\.\PHYSICALDRIVE1 D: Data
test-vm FC03 test-vm/test-vm.vmdk Hard disk 3 2 6000c290e36c2f3b641a56308551e998 6000C290e36c2f3b641a56308551e998 \\.\PHYSICALDRIVE2 {E:, F:} {New Volume, New Volume}
Скрипт не особо тестировался, поэтому запуская его, предварительно смотрите по коду, что именно он делает и как. Посмотреть данный PowerCLI-сценарий можно по этой ссылке.
Рано или поздно каждый администратор приходит к тому, что ему необходимо каким-то образом сохранить, а потом и извлечь учётные данные. Причём это должно быть быстро, эффективно, удобно и самое главное безопасно. Ни один из известных мне способов не отвечал всем этим требованиям одновременно. Я стал искать и нашел свой способ, которым и хочу поделиться с вами. Это PowerCLI! Удивлены? Порой самое простое решение лежит на поверхности.
Как многие из вас знают, в конце лета и начале осени прошли главные конференции по виртуализации этого года - VMworld 2017 и VMworld Europe 2017. Об основных анонсах мероприятий мы писали по этой ссылке, но в рамках этих ивентов было еще столько всего, что обо всем, конечно же, не напишешь.
Специально для тех, кто хочет узнать тонкости всех докладов, которые были представлены на конференциях, компания VMware создала репозиторий на GitHub, где содержатся вообще все ссылки на сессии, многие из которых дадут много новой информации и технических деталей о продуктах и технологиях виртуализации от VMware:
Сессии доступны как в виде роликов на Youtube, так и виде PDF-документов.
Ну а вот список самых популярных сессий (топ-10 по числу просмотров на Youtube):
[SER1143BU] - A Deep Dive into vSphere 6.5 Core Storage Features and Functionality [NET1152BU] - Introduction to VMware NSX
[SER1534BUR] - vSphere Performance Troubleshooting and Root Cause Analysis
[VIRT1309BU] - Monster VMs (Database Virtualization) with vSphere 6.5: Doing IT Right
[NET1345BU] - NSX in Small Data Centers for Small and Medium Businesses
[SER2724BU] - Extreme Performance Series: Performance Best Practices
[VIRT1430BU] - Performance Tuning and Monitoring for Virtualized Database Servers
[ADV1587BU] - NSX + VMware Horizon: A Security Architecture for Delivering Desktops and Applications with VMware
[SER2355BU] - Best Practices for All-Flash Arrays with VMware vSphere
[SER2965BU] - Advanced Troubleshooting of ESXi Server 6.x for vSphere Gurus
[SER2077BU] - Achieve Maximum vSphere Stability with PowerCLI Assisted Documentation: From Buildout to Daily Administration
Как часто вам приходится увеличивать логические диски внутри гостевых ОС ВМ? Довольно часто, не так ли? Вам надо сначала найти вашу ВМ в vSphere Client, потом кликнуть Edit Settings и перво-наперво увеличить виртуальный диск ВМ. После вы должны будете открыть RDP к вашей ВМ, затем открыть Disk Management, выбрать Rescan Disks из контекстного меню и только после этого ещё один правый клик на нужном вам логическом диске и вот сейчас выбрать Extend Volume...
Это Часть 3 в серии о Storage DRS. В предыдущей части мы говорили о том как создавать и удалять SDRS Anti-Affinity правила. Чтобы закрыть тему, нам осталось редактировать/реконфигурировать существующие правила. Логично предположить, что это будет функция Set-SdrsAntiAffinityRule.
Это Часть 2 в серии о Storage DRS. Часть 1 «Как конфигурировать Storage DRS кластеры с PowerCLI – Часть 1» находится здесь. Часть 3 «Как конфигурировать SDRS Anti-Affinity правила с PowerCLI – Часть 3» и может быть даже Часть 4 «Как просмотреть историю операций SDRS кластеров с PowerCLI – Часть 4» ожидаются в ближайшем будущем. Следите за новыми публикациями! Эта статья расскажет о 4 новых функциях...
Некоторые из вас знают, что, начиная с версии vSAN 6.2, стало возможно создание "тонких" (thin) файлов подкачки. В более ранних версиях vSAN было возможно создавать только reserved своп-файлы, что требовало довольно больших объемов дисковой памяти. То есть, если у машины 16 ГБ оперативной памяти, то в два раза больше будет занято и на диске под своп (32 ГБ), так как при FTT=1 (failures to tolerate) дисковые объекты дублируются в рамках кластера.
Поэтому для сред, в которых достаточно памяти у хостов, и отсутствует Memory Overcommitment, сделали параметр в настройках кластера SwapThickProvisionDisabled, позволяющий виртуальным машинам создавать тонкие файлы подкачки.
Чтобы выставить эту настройку, есть специальный скрипт PowerCLI, который применяет ее ко всем хостам ESXi кластера vSAN.
Однако выставить настройку недостаточно - ведь, чтобы файлы подкачки стали тонкими, то есть пересоздались, надо перезагрузить (выключить и включить) виртуальные машины с толстыми swap-файлами. Найти такие машины позволит вот этот Python-сценарий. Ну а дальше уже перезагрузите машины по списку - это позволит вам сэкономить значительный объем дискового пространства кластера.
Напомним, что PowerCLI – это расширение для Windows PowerShell, которое позволяет использовать более 600 командлетов для работы с облачной инфраструктурой. Последняя версия пакета доступна на официальном сайте VMware.
За счет гибких функциональных возможностей надстройки управлять виртуальными машинами стало еще проще. Единственное условие – необходимо разобраться, как это работает на практике.
Get-VM
Get-VM представляет собой классический подход, позволяющий извлекать список виртуальных машин на стороне vCenter. Кроме того, используя Get-VM со стандартным командлетом PowerShell Select-Object, можно запросить интересующие характеристики, например имя виртуальной машины, количество процессоров, объем оперативной памяти и прочую информацию. А затем с помощью Export-CSV экспортировать данные в файл формата CSV для дальнейшей работы с полученной информацией.
Помимо работы с объектами ВМ, Get-VM используется для поиска снимков в виртуальной среде, о которых, вероятнее всего, могли забыть. В примере, представленном ниже, запрашивается список снимков ВМ, а полученный результат выводится в текстовый файл snapshots.txt.
Move-VM
Если перед администратором стоит задача переноса виртуальных машин с одного хоста на другой средствами командной строки, используют командлет Move-VM. В примере ниже производится выборка ВМ, размещенных на узле esxi01, а с помощью Move-VM – перенос виртуальных машин на хост esxi02.
Если же необходимо выполнить «живую миграцию», используют следующую комбинацию:
New-VM
Когда требуется создать одну виртуальную машину, используют командлет New-VM. Обратите внимание, что таким способом создается пустая ВМ, на которую позже устанавливают ОС и соответствующие приложения.
Но существуют и альтернативные варианты развертывания, когда работают с заранее подготовленным шаблоном. В примере ниже путем клонирования виртуальной машины OriginalVM создается ВМ NewVM8 и размещается на узле esxi01.
Если создавать виртуальные машины по отдельности нет ни желания, ни времени, используйте файл ответов в формате CSV. В нем содержатся строки, описывающие параметры виртуальных машин. Такой файл необходимо определить заранее.
Содержимое файла CSV
Invoke-VMS
Командлет Invoke-VMS обеспечивает удаленное выполнение команд и скриптов в гостевой Windows, Linux ОС, запущенной на виртуальной машине. Данная функция помогает автоматизировать задачи на одной или нескольких ВМ.
Обратите внимание, что в приведенном примере запускается скрипт типа Bat и используется переменная среды со следующим синтаксисом: %<environment variable>%, например, % programfiles%. При этом внешние кавычки ($ script = ‘…’) определяют строковую переменную в PowerShell, а внутренние проставляются тогда, когда в значении переменной встречаются пробелы.
Get-VMHost
Командлет Get-VMHost помогает узнать, на каком узле или в каком дата-центре запущена виртуальная машина. В примере ниже запрашивается информация о ВМ с именем MyVM.
Если необходимо получить информацию о ЦОД, прибегают к помощи командлета Get-Datacenter для передачи объекта в параметр Location. Таким образом, получаем следующую строку:
Несмотря на растущую популярность технологии VMware vSAN, большинство крупных предприятий по-прежнему частично или полностью продолжают работать с общими хранилищами (shared storage). Есть достаточно PowerCLI командлетов для конфигурирования большинства аспектов HA/DRS кластеров, однако для SDRS кластеров выбор не велик.
Где-то во время релиза обновленной версии платформы VMware vSphere 6.5 компания VMware выпустила и новую версию фреймворка PowerCLI 6.5, в котором было много новых возможностей, особенно касающихся управления кластером vSAN.
На днях же вышла версия PowerCLI 6.5.2 (сразу же после релиза vSphere 6.5 Update 1), посмотрим что там появилось нового, а также заодно упомянем новые фичи прошлого апдейта - PowerCLI 6.5.1 (он вышел 3 месяца назад).
Если раньше при перемещении ВМ использовался параметр Destination, который принимал тип folder, ESXi-хост, кластер или ресурс-пул (но только одно из вышеперечисленного), то теперь можно использовать параметр InventoryLocation для задания непосредственного конечного положения ВМ. Это упрощает перемещение ВМ, например, между серверами vCenter:
2. Можно использовать ISO из Content Library.
Теперь командлет New-CDDrive имеет параметр ContentLibraryIso, который можно использовать для указания ISO-образа в библиотеке.
3. Обновления экспериментальных фичей:
Set-HardDisk -ZeroOut. Этот параметр можно использовать для заполнения диска нулями при прямом обращении к хосту ESXi.
New-HardDisk -AdvancedSetting. Этот параметр используется для ассоциации правил Storage Distributed Resource Scheduler (SDRS).
New-VM -AdvancedSetting. Аналогично предыдущему пункту - нужен для правил SDRS.
Install-VMHostPatch. Весь этот командлет пока экспериментальный.
А вот что нового было в PowerCLI 6.5.1:
1. Автозагрузка модулей PowerShell.
Теперь после логина и выполнения запроса к командлету автоматически подгружаются все необходимые модули. Например, вот что происходит после выполнения Connect-VIServer (обратите внимание на состав модулей):
2. Новые и обновленные командлеты для групп кластеров DRS и правил VM/Host.
Следующие командлеты были добавлены:
Get-DRSClusterGroup
New-DRSClusterGroup
Set-DRSClusterGroup
Remove-DRSClusterGroup
Get-DRSVMHostRule
New-DRSVMHostRule
Set-DRSVMHostRule
Remove-DRSVMHostRule
3. Новый модуль VMware.VimAutomation.Srm для управления SRM.
Теперь он вынесен из основного модуля в отдельный.
4. Обновления API.
Для работы с внешними продуктами были очень существенно обновлены модули vR Ops (vRealize Operations) и Horizon (для работы с Horizon View 7.1 API).
5. Новые командлеты для iSCSI vSAN.
Здесь появились следующие командлеты для управления инициаторами и таргетами iSCSI:
Get-VsanIscsiInitiatorGroup
New-VsanIscsiInitiatorGroup
Set-VsanIscsiInitiatorGroup
Remove-VsanIscsiInitiatorGroup
Get-VsanIscsiTarget
New-VsanIscsiTarget
Set-VsanIscsiTarget
Remove-VsanIscsiTarget
Get-VsanIscsiInitiatorGroupTargetAssociation
New-VsanIscsiInitiatorGroupTargetAssociation
Remove-VsanIscsiInitiatorGroupTargetAssociation
Get-VsanIscsiLun
New-VsanIscsiLun
Set-VsanIscsiLun
Remove-VsanIscsiLun
Get-VsanStat
Start-VsanDiskFormatUpdate
Get-VSANView
Также модуль Storage получил новые командлеты для механизма storage policy based management (SPBM):
Не так давно мы писали про документ "RDSH Session Load-Balancing in Horizon 6 and Horizon 7", в котором рассматриваются вопросы балансировки нагрузки на ферму серверов RDSH, в рамках которой работают терминальные приложения и сессии пользователей.
Ну а на днях VMware выпустила на тему RDSH не менее интересный документ "VMware Horizon Apps Performance Reference Architecture", раскрывающий вопросы производительности большой инфраструктуры доставки приложений и терминальных сессий.
Для тестов была взята некая референсная архитектура решения, работающая на базе технологии App Volumes с пулами наиболее используемых приложений, и рассмотрены различные варианты отработки виртуальной инфраструктурой нагрузок в гостевых системах. Сами виртуальные десктопы создавались посредством технологии Instant Clone.
Вот такая архитектура рассматривалась при тестировании:
А так были распределены рабочие нагрузки по хост-серверам VMware ESXi:
Результаты рассматривали в пяти аспектах:
1. Производительность работы пользователей (User-Experience Performance Results).
Время отклика при росте количества одновременных сессий всегда находилось в норме и росло линейно:
2. Пиковые нагрузке при массовой загрузке десктопов (Boot Storms).
Хосты отрабатывали нагрузки Boot Storms на 70% загрузках мощности, после чего нормализовывали текущий уровень:
3. Производительность работы хост-серверов (Host Performance Results).
Хосты RDSH отрабатывали хорошо:
А хосты обслуживания инфраструктуры vSphere и Horizon еще лучше:
4. Производительность виртуальных машин (Virtual Machine Performance Results).
Машины в среднем не были загружены по ресурсам в пике более чем на 50%:
5. Производительность подсистемы хранения (Storage Performance Results).
Виртуальные машины RDSH выдавали вполне приемлемые показатели производительности хранилищ:
На самом деле, документ содержит десятки интересных графиков, таблиц и инсайтов. Очень рекомендуется к прочтению тем, кто планирует у себя развертывание инфраструктуры виртуализованных приложений и терминальных серверов RDSH.
Многие пользователи виртуальной инфраструктуры VMware vSphere часто используют кастомизированные образы гипервизора VMware ESXi, который распространяется OEM-производителями оборудования, например, HP. Эти образы включают в себя специфические драйвера устройств, которые, зачастую, отсутствуют в стандартном комплекте поставки ESXi (это и понятно, так как нельзя поддерживать все устройства всех производителей в одном образе).
Между тем, многие администраторы обновляют такие образы достаточно редко - иногда по полгода ждут пока OEM-вендор выпустит очередную версию образа и накатывают его. Но ведь бывают критические обновления безопасности ESXi, которые нужно установить как можно скорее. Для этого нужно знать, как выглядит процедура обновления кастомного образа vSphere.
Во-первых, нужно понимать, что основные номера билдов и даты релиза гипервизора указаны в статье KB 2143832. А патчи в виде VIB-пакетов можно скачать с портала MyVMware здесь.
Во-вторых, есть утилита PowerCLI Image Builder (о ней мы писали вот тут), которая позволяет поддерживать актуальное состояние образа ESXi с точки зрения последних обновлений, но в то же время сохранять специфический контент кастомных образов.
Ну и, в-третьих, для тех, кто умеет пользоваться утилитой, есть простая команда, которая позволяет склонировать существующий профиль образа и обновить его пакеты, накатив последние патчи ESXi:
Также у VMware есть скрипты PowerCLI, которые демонстрируют более тонкий подход к обновлению образов ESXi. Но надо отметить, что они официально не поддерживаются со стороны техподдержки VMware.
Итак, первый скрипт - esxi-image-creator.ps1 - представляет собой обертку к Image Builder и дает некоторые дополнительные возможности, которые часто требуются для кастомных образов ESXi. Например, он позволяет монтировать depot-файлы и включать или исключать VIB-пакеты из состава образов. Также там есть такие расширенные настройки, как указание билдов по датам выпуска, а не по номерам и т.п. Итоговый образ можно собрать в формате ISO или ZIP.
Второй скрипт -
esxi-image-comparator.ps1 - показывает различия между двумя профилями образов ESXi. Эти различия можно показать в консоли или графическом интерфейсе, а также экспортировать в CSV-файл для последующего анализа.
Как видно из картинки, в процессе работы скрипта можно в интерактивном режиме включать или исключать профили для сравнения.
Вот пример использования утилиты при обновлении кастомного образа Cisco для ESXi 5.5 (обновление U3b от декабря 2015) с последними патчами VMware и обновленными драйверами Cisco для устройств enic и fnic. При этом исключается VIB-пакет tools-light для оптимизации использования с Auto Deploy:
Ну а вот так выглядит результат сравнения обновленного профиля с исходным:
Еще один пример - включение в образ Dell ESXi 6.0U3, который уже был обновлен Dell, патча patch 7a (5224934) с пакетами VIB для NSX и удаление VMware Tools для использования с Auto Deploy.
А вот пример генерации образа для HPE Proliant, содержащего последние обновления из репозитория HP, а также последние обновления оффлайн-бандла ESXi 6.5:
Надо отметить, что не следует использовать публичный репозиторий VMware image profile repository для создания кастомных образов, так как он содержит много различных версий и модификаций, что может привести к созданию образа, который невозможно будет использовать.
Но зато вот такая команда позволит сформировать таблицу с отличиями каждого из релизов VMware ESXi:
Мораль поста такова - нужно пользоваться, по-возможности, кастомными образами ESXi от OEM-производителей, но не забывать накатывать обновления (особенно security patches) от обычных образов VMware ESXi, создаваемых VMware.
В свете последних событий, связанных с WannaCry ransomware, очень актуальным становится проверка наличия того или иного установленного патча (Patch/Hotfix/KB) внутри ОС виртуальных машин. Test-VMHotfix из моего PowerCLI Vi-Module модуля быстро и эффективно проверит все ваши ВМ. Пользоваться функцией проще простого, передайте в pipeline ВМ для проверки и шаблон названия патча в параметре -KB... Таги: VMware, PowerCLI, Security, vSphere, VMachines
На сайте проекта VMware Labs появился интересный PowerCLI-скрипт vCenter Cluster Performance Tool, с помощью которого можно получить информацию о производительности кластера за счет агрегации данных, поступающих от хостов VMware ESXi.
Это уже вторая версия сценария, переработанная на базе механизма модулей PowerCLI 6.0 (ранее она была построена на снипетах).
Для работы сценария понадобится указать 2 следующих параметра:
Интервал от 20 до 300 секунд. По умолчанию это 20 секунд, что соответствует сбору статистики в близкому к реальном времени, а значение 300 даст пятиминутный интервал между сборами, чтобы не создавать лишнюю нагрузку.
Специальный флаг для получения списка уникальных идентификаторов счетчиков производительности, доступных на vCenter Server (нужно указать -1 в качестве аргумента для получения списка). Далее можно использовать один из полученных идентификаторов для вывода соответствующей метрики для кластера.
Возможности скрипта vCenter Cluster Performance Tool:
Сбор всех данных в указанном интервале, которые доступны на каждом хосте заданного кластера.
Простой способ запуска сценария.
Данные сохраняются в файл CSV, которые можно подставить в любое средство визуализации.
Также генерируется график в формате картинки PNG (как показано выше).
Для работы скрипта потребуется VMware vCenter Server 5.0 или более поздний, а также Microsoft Chart Controls для Microsoft .NET Framework 3.5. Скачать vCenter Cluster Performance Tool можно по этой ссылке.
Начиная с VMware vSphere 6.0, компания VMware предлагает администраторам очень удобный механизм для назначения прав доступа на самом высоком уровне при наличии нескольких серверов VMware vCenter - глобальные пермиссии (global permissions).
Для тех, кто использует режим vCenter Enhanced Linked Mode (ELM) с несколькими географически разделенными площадками и разнородными инфраструктурами, глобальные пермиссии - это отличное решение, так как они создаются один раз, после чего распространяются и (что самое главное) поддерживаются в согласованном состоянии на всех серверах vCenter связанной инфраструктуры в рамках одного домена Single Sign-On (SSO).
Вильям Лам, известный своими сценариями для автоматизации инфраструктуры vSphere, написал удобный скрипт GlobalPermissions.ps1, позволяющий добавлять и удалять глобальные пермиссии. Он содержит методы New-GlobalPermission и Remove-GlobalPermission, для которых можно задавать следующие параметры:
vc_server - хост сервера vCenter
vc_username - имя пользователя vCenter
vc_password - пароль пользователя vCenter
vc_user - пользователь vCenter, которому будут назначаться пермиссии
vc_role_id - идентификатор Role ID, который связан с ролью vSphere на данном vCenter Server
propagate - значение true или false для распространения пермиссий вниз по уровням иерархии
Чтобы получить параметр vc_role_id, нужно соединиться с vCenter Server и указать имя роли, выполнив сниппет ниже. В данном примере мы получаем ID административной роли с именем Admin:
(Get-VIRole -Name Admin).ExtensionData.RoleId
Вот пример создания новой глобальной пермиссии для одного из пользователей:
Эта статья предназначена в помощь администраторам VDI, которые обновили свои хосты ESXi, оснащенные картами GRID vGPU, до vSphere версии 6.5. Как сказано Джереми Майном в этом форуме NVIDIA, vSphere 6.5 и драйвер GRID от ноября 2016 требует изменения режима GPU с «Shared» (vSGA) на «Shared Direct» (vGPU) через веб-клиент для включения поддержки режима vGPU виртуальными машинами...
Напомним, что этот продукт позволяет централизованно управлять хост-серверами VMware ESXi за счет автоматизации операций системных администраторов. По-сути, vSphere Management Assistant представляет собой "вынесенную" за пределы серверов ESXi сервисную консоль (консольную ОС), которая для виртуальной инфраструктуры присутствует в единственном экземпляре, но централизованно исполняет сценарии на хостах, используя различные интерфейсы VMware vSphere.
Теперь вместо vMA предлагается использовать интерфейсы vCLI и PowerCLI. В целом, этот подход выглядит достаточно логичным - большинство функций удаленного управления платформой взяли на себя эти фреймворки, а сами ESXi и vCenter отлично управляются через стандартные средства и API.
Сама VMware предлагает использовать интерфейс vSphere Command Line Interface (vCLI) в качестве альтернативы vMA. Между тем, она заявляет о том, что команды esxcfg- и vicfg- также будут выведены из эксплуатации (deprecated). Поэтому администраторам vSphere стоит проверить, не используются ли эти две команды в старых скриптах для управления виртуальной инфраструктурой (подробнее о заменах для этих команд - тут).
Вот какие еще предлагаются альтернативы интерфейсу vCLI и устаревшему модулю vMA:
Фреймворк PowerCLI и средство кроссплатформенного использования PowerCLI Core.
Компания VMware время от времени выпускает видеоролики серии Whiteboarding, где технические специалисты компании рассказывают в понятной форме о продуктах и технологиях, рисуя на доске схемы и элементы интерфейса.
На днях вышло несколько новых видео, посвященных VMware vSphere и PowerCLI и заслуживающих внимания (а еще и со стильным бородатым мужиком в последнем ролике). Давайте взглянем:
О шифровании ВМ и трафика vMotion
О режиме безопасной загрузки (Secure Boot) в VMware vSphere
О механизме доступности управляющего сервера - VMware vCenter High Availability
О топологии составляющих архитектуры VMware vCenter
Об апгрейде VMware vCenter и миграции на vCenter Server Appliance (vCSA)
О методах API access methods в интерфейсе PowerCLI
Ну и, конечно же, обратите внимание на плейлист компании VMware, посвященный новой версии платформы VMware vSphere 6.5 - там есть что посмотреть.
Как некоторые знают, в VMware vSphere 6.5 появилась (а точнее вернулась снова) возможность Automatic VMFS UNMAP - возврат дискового пространства виртуальной машины (ее VMDK) на сторону дискового массива средствами VAAI (vStorage API for Array Integration). Если раньше эта возможность требовала выполнения различных команд, то теперь управление этой штукой доступно из GUI, а возврат дисковых блоков происходит автоматически. Работает UNMAP только для "тонких" (Thin Provisioned) LUN, на которых размещаются тома VMFS.
Из GUI vSphere Web Client можно управлять только UNMAP'ом для томов VMFS 6, для пятой версии файловой системы это нужно делать вручную с помощью ESXCLI. Кроме того, механизм UNMAP работает в асинхронном режиме, а иногда хочется почистить хранилища от неиспользуемых блоков прямо сейчас.
Поэтому весьма кстати, что на сайте EnterpriseDaddy обнаружился полезный PowerCLI-скрипт, который возвращает дисковое пространство в LUN для заданного хранилища хоста ESXi.
Эта функция принимает на вход имя хоста ESXi и Datastore, а также отключает таймаут на исполнение операций, так как возврат дискового пространства LUN может занять часы.
Function Perform-VMFSUnmap {
[CmdletBinding()]
param(
[Parameter(
Mandatory=$true)]
[String[]]$Datastore,
[String]$ESXiHost
)
Set-PowerCLIConfiguration -WebOperationTimeoutSeconds -1 -Scope Session -Confirm:$false
$ESXHost = Get-VMHost $ESXiHost
$DatastoreName = Get-Datastore $Datastore
Write-Host 'Using ESXCLI and connecting to $VMHost' -ForegroundColor Green
$esxcli = Get-EsxCli -VMHost $ESXHost
Write-Host 'Unmapping $Datastore on $VMHost' -ForegroundColor Green
$esxcli.storage.vmfs.unmap($null,$DatastoreName,$null)
}
Многие администраторы виртуальной инфраструктуры VMware vSphere или Horizon View в целях мониторинга пользовательской активности хотели бы иметь возможность снимать скриншоты консоли виртуальных машин. На сайте vcloudnine появился такой скрипт для интерфейса PowerCLI:
Для получения скриншота ВМ убедитесь, что настройки энергосбережения у нее отключены, иначе получите черный экран, в который машина уходит через несколько минут неактивности.
Шесть лет назад, признанный VMware guru William Lam написал отличную статью на эту тему. Сегодня мы автоматизируем его решение с помощью PowerCLI. Прошу любить и жаловать функцию Set-MaxSnapshotNumber из моего PowerCLI Vi-Module модуля. Функция может выполнять следующие 3 действия...
Компания VMware вместе с выпуском обновленной версии платформы vSphere 6.5 выпустила и обновленный интерфейс для администрирования виртуальной инфраструктуры через PowerShell - PowerCLI 6.5 R1. Ну а на днях стал доступен большой и информативный постер на эту тему - VMware PowerCLI 6.5 Release 1 Reference Poster.
Напомним, что постер о PowerCLI 6.3 доступен у нас по ссылке тут (кому интересно - мы писали и о постере PowerCLI 5.8).
В PowerCLI 6.5 R1 появилось множество полезных командлетов для работы с хранилищами, которые добавляют функциональность для работы с vSAN, VVOLs и виртуальными дисками. Также появились отдельные командлеты для работы с виртуальными дисками (при этом нет необходимости обращаться к самой виртуальной машине).
Скачать VMware PowerCLI 6.5 R1 можно по этой ссылке. Release notes доступны тут, User Guide можно скачать здесь, а changelog вот тут. Постер можно скачать по этой ссылке.
PowerShell функция Connect-VMHostPutty из моего PowerCLI Vi-Module модуля поможет вам открывать несколько SSH-сессий putty к хостам ESXi без ввода пароля. Функция на самом деле не требует, чтобы на вашем компьютере был установлен VMware PowerCLI. Всё, что нужно - это PowerShell версии 3.0 или выше. Это очень короткая и простая функция всего с двумя параметрами и только один из них обязательный...
Как известно, с некоторых пор на предприятиях стало модно использовать мессенджер Slack, в котором есть удобные средства совместной работы и интеграции с различными Enterprise-сервисами (например, JIRA).
Компания OpVizor выпустила виртуальный модуль OpBot Virtual Assistant, реализующий бота Slack, который позволит вам исполнять команды PowerCLI / PowerShell для вывода различных статистик прямо в виде сообщений в адрес бота.
Установка виртуального модуля OpBot проста:
Интегрируем OpBot в мессенджер Slack (получаем токен Slack API для импорта в виртуальный модуль).
Скачиваем и конфигурируем OpBot Virtual Appliance.
Для оперирования этого виртуального модуля надо создать специальный аккаунт (желательно с правами Read Only по вполне понятным причинам). При работе с OpBot есть следующие нюансы:
На данный момент один виртуальный модуль может работать с одним сервером vCenter и одним ботом.
Пермиссии задаются в настройках (все команды будут исполняться в контексте указанного аккаунта).
Несколько виртуальных модулей/серверов vCenter могут управляться как одним Slack-ботом, так и разными. Обе модели реализуются через повторное развертывание OVF-шаблона.
При работе используется механизм PowerCLI Core (со всеми его ограничениями).
Начать работу с OpBot Virtual Assistant можно по этой ссылке. Кстати, удобно использовать алиасы для выполнения команд, например:
@yourbotname alias badvms=posh get-view -ViewType VirtualMachine -Filter @{'RunTime.ConnectionState'='disconnected|inaccessible|invalid|orphaned'} | select name
@yourbotname badvms